#ifndef _SB3D_CLIENT_H_
#define _SB3D_CLIENT_H_

#include <iostream>

typedef enum
{
	ca_uninitialized = 0,
	ca_disconnected, 	// not talking to a server
	ca_connecting,	// sending request packets to the server
	ca_connected,	// netchan_t established, waiting for svc_serverdata
	ca_active,	// game views should be displayed
	ca_cinematic,	// playing a cinematic, not connected to a server
} connstate_t;

typedef enum
{
	key_console = 0,
	key_game,
	key_menu
} keydest_t;

// screenshot types
#define VID_SCREENSHOT	0
#define VID_LEVELSHOT	1
#define VID_MINISHOT	2

typedef enum
{
	scrshot_inactive,
	scrshot_normal,	// in-game screenshot
	scrshot_plaque,  	// levelshot
	scrshot_savegame,	// saveshot
	scrshot_demoshot,	// for demos preview
	scrshot_envshot,	// cubemap view
	scrshot_skyshot	// skybox view
} scrshot_t;


typedef struct
{
	connstate_t		state;
	bool			changelevel;		// during changelevel
	
	keydest_t		key_dest;
	
	scrshot_t		scrshot_action;		// in-action
	std::string		shotname;
} client_static_t;

extern client_static_t	cls;

class sb3dClient
{
public:
	void Init();
};

#endif